// api/index.js
import axios from 'axios';

// 创建 axios 实例
const api = axios.create({
  baseURL: 'http://127.0.0.1:5000/api', // 后端 API 地址
  timeout: 30000,
  headers: {
    'Content-Type': 'application/json',
  },
});

// 请求拦截器
api.interceptors.request.use(
  (config) => {
    // 从本地存储中获取 token
    const token = localStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器
api.interceptors.response.use(
  (response) => {
    // 直接返回响应数据
    return response.data;
  },
  (error) => {
    if (error.response) {
      // 服务器返回错误状态码
      console.error('API Error:', error.response.data);
      return Promise.reject(error.response.data);
    } else if (error.request) {
      // 请求已发出但没有收到响应
      console.error('Network Error:', error.request);
      return Promise.reject({ message: '网络错误，请检查您的连接' });
    } else {
      // 其他错误
      console.error('Error:', error.message);
      return Promise.reject({ message: '请求出错' });
    }
  }
);

export default api